package com.ningxun.rms.signup.service;

import java.util.List;

import com.ningxun.rms.domain.basewechatuser.BaseWechatUser;
import com.ningxun.rms.signup.domain.BusSignup;
import com.ningxun.rms.signup.domain.vo.BusSignupWithRequireVO;

/**
 * 报名信息Service接口
 *
 * @author rms
 * @date 2025-07-15
 */
public interface IBusSignupService
{
    /**
     * 查询报名信息
     *
     * @param signupId 报名信息主键
     * @return 报名信息
     */
    public BusSignup selectBusSignupBySignupId(Long signupId);

    /**
     * 查询报名信息列表
     *
     * @param busSignup 报名信息
     * @return 报名信息集合
     */
    public List<BusSignup> selectBusSignupList(BusSignup busSignup);

    /**
     * 新增报名信息
     *
     * @param busSignup 报名信息
     * @return 结果
     */
    public int insertBusSignup(BusSignup busSignup);

    /**
     * 修改报名信息
     *
     * @param busSignup 报名信息
     * @return 结果
     */
    public int updateBusSignup(BusSignup busSignup);

    /**
     * 批量删除报名信息
     *
     * @param signupIds 需要删除的报名信息主键集合
     * @return 结果
     */
    public int deleteBusSignupBySignupIds(Long[] signupIds);

    /**
     * 删除报名信息信息
     *
     * @param signupId 报名信息主键
     * @return 结果
     */
    public int deleteBusSignupBySignupId(Long signupId);

    Integer selectIsSuccess(String openId);

    /**
     * 查询报名信息与需求信息联查列表
     *
     * @param busSignup 报名信息
     * @return 报名信息与需求信息联查集合
     */
    public List<BusSignupWithRequireVO> selectSignupWithRequireList(BusSignup busSignup);

    /**
     * 导出报名信息数据
     *
     * @param busSignup 报名信息查询条件
     * @return 报名信息数据集合
     */
    public List<BusSignupWithRequireVO> exportSignupData(BusSignup busSignup);
}
